package com.yuezhi.mylauncher.utils;

import android.content.Context;

import com.ys.rkapi.MyManager;
import com.yuezhi.mylauncher.base.BaseApplication;

public class YXApiUtils {

    private volatile static YXApiUtils instance;
    private final MyManager manager;

    public static YXApiUtils init() {
        if (instance == null) {
            synchronized (YXApiUtils.class) {
                if (instance == null) {
                    instance = new YXApiUtils(BaseApplication.getContext());
                }
            }
        }
        return instance;
    }

    public YXApiUtils(Context context) {
        manager = MyManager.getInstance(context);
    }

    /**
     * 获取设备型号
     * @return 返回型号
     */
    public String getAndroidModel(){
        if (manager!=null) {
            return manager.getAndroidModle();
        }else {
            return "";
        }
    }

    /**
     * 设备关机
     */
    public void shutDown(){
        if (manager!=null) {
            manager.shutdown();
        }else {
            ToastUtil.showMessage("执行关机命令失败");
        }
    }

    /**
     * 设备重启
     */
    public void reboot(){
        if (manager!=null) {
            manager.reboot();
        }else {
            ToastUtil.showMessage("执行重启命令失败");
        }
    }

    /**
     * 隐藏或显示状态栏
     * @param isHide true：隐藏   false：显示
     */
    public void hideNavBar(boolean isHide){
        if (manager!=null) {
            manager.hideNavBar(isHide);
        }else {
            ToastUtil.showMessage("操作隐藏或显示状态栏失败");
        }
    }

    /**
     * 获取状态栏状态
     * @return 返回状态  true：隐藏   false：显示
     */
    public boolean getNavBarIsHide(){
        if (manager!=null) {
            return manager.getNavBarHideState();
        }else {
            return false;
        }
    }

    /**
     * 打开或关闭滑出导航栏
     * @param isShow true：打开滑出导航栏  false：关闭滑出导航栏
     */
    public void setSlideShowNavBar(boolean isShow){
        if (manager!=null) {
            manager.setSlideShowNavBar(isShow);
        }else {
            ToastUtil.showMessage("操作滑出导航栏失败");
        }
    }

    /**
     * 打开或关闭下拉通知栏
     * @param enable true：打开下拉通知栏   false：禁止下拉通知栏
     */
    public void setSlideShowNotificationBar(boolean enable){
        if (manager!=null) {
            manager.setSlideShowNotificationBar(enable);
        }else {
            ToastUtil.showMessage("操作下拉通知栏失败");
        }
    }

    /**
     * 以 ROOT 权限运行 shell 命令
     * @param command shell命令
     */
    public void execSuCmd (String command){
        if (manager!=null) {
            manager.execSuCmd(command);
        }else {
            ToastUtil.showMessage("shell命令执行失败");
        }
    }

    /**
     * 设置默认 Launcher
     * @param packageAndClassName Launcher的包名和启动类名（例如："com.android.launcher3/com.android.launcher3.Launcher"）
     */
    public void setDefaultLauncher(String packageAndClassName){
        if (manager!=null) {
            manager.setDefaultLauncher(packageAndClassName);
        }else {
            ToastUtil.showMessage("设置默认Launcher失败");
        }
    }
}
